package net.lanelife.casino.caipiao.dto.admin;

import java.util.Date;

import net.lanelife.casino.caipiao.entity.User.AccountType;
import net.lanelife.casino.caipiao.entity.User.OnlineStatus;
import net.lanelife.casino.caipiao.entity.User.RegisterSource;
import net.lanelife.casino.common.dto.PersistentDTO;
import net.lanelife.casino.common.entity.json.serialize.CurrencySerializer;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

public class UserDTO extends PersistentDTO<Integer> {

	private static final long serialVersionUID = -5737602418697238898L;

	private Integer id;
	
	private String userName;
	
	private String nickName;
	
	private AccountType accountType;
	
	private Integer layerId;
	
	private String parentName;
	
	private Integer floor;
	
	private Double rebatePoint;
	
	private String qq;
	
	private String email;
	
	private String mobile;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double accountBalance;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double frozenBalance;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double agBalance;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double bbBalance;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double betTotal;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double betMax;
	
	private Long betTimes;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double winTotal;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double winMax;
	
	private Long winTimes;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double rechargeTotal;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double rechargeMax;
	
	private Long rechargeTimes;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double withdrawTotal;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double withdrawMax;
	
	private Long withdrawTimes;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double transferInTotal;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double transferInMax;
	
	private Long transferInTimes;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double transferOutTotal;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double transferOutMax;
	
	private Long transferOutTimes;
	
	private OnlineStatus onlineStatus;
	
	private Boolean accountLocked;
	
	private Boolean loginLocked;
	
	private Boolean bankCardLocked;
	
	private Boolean layerLocked;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date loginPasswordLastModifiedDate;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date fundsPasswordLastModifiedDate;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date lastLoginTime;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date lastWithdrawTime;
	
	private RegisterSource registerSource;
	
	private String lastLoginAddress;
	
	private Integer loginFailureTimes;
	
	private String quota;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createdDate;
	
	private String lastModifiedBy;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date lastModifiedDate;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	public AccountType getAccountType() {
		return accountType;
	}

	public void setAccountType(AccountType accountType) {
		this.accountType = accountType;
	}

	public Integer getLayerId() {
		return layerId;
	}

	public void setLayerId(Integer layerId) {
		this.layerId = layerId;
	}

	public String getParentName() {
		return parentName;
	}

	public void setParentName(String parentName) {
		this.parentName = parentName;
	}

	public Integer getFloor() {
		return floor;
	}

	public void setFloor(Integer floor) {
		this.floor = floor;
	}

	public Double getRebatePoint() {
		return rebatePoint;
	}

	public void setRebatePoint(Double rebatePoint) {
		this.rebatePoint = rebatePoint;
	}

	public String getQq() {
		return qq;
	}

	public void setQq(String qq) {
		this.qq = qq;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	public Double getAccountBalance() {
		return accountBalance;
	}

	public void setAccountBalance(Double accountBalance) {
		this.accountBalance = accountBalance;
	}

	public Double getFrozenBalance() {
		return frozenBalance;
	}

	public void setFrozenBalance(Double frozenBalance) {
		this.frozenBalance = frozenBalance;
	}

	public Double getAgBalance() {
		return agBalance;
	}

	public void setAgBalance(Double agBalance) {
		this.agBalance = agBalance;
	}

	public Double getBbBalance() {
		return bbBalance;
	}

	public void setBbBalance(Double bbBalance) {
		this.bbBalance = bbBalance;
	}

	public Double getBetTotal() {
		return betTotal;
	}

	public void setBetTotal(Double betTotal) {
		this.betTotal = betTotal;
	}

	public Double getBetMax() {
		return betMax;
	}

	public void setBetMax(Double betMax) {
		this.betMax = betMax;
	}

	public Long getBetTimes() {
		return betTimes;
	}

	public void setBetTimes(Long betTimes) {
		this.betTimes = betTimes;
	}

	public Double getWinTotal() {
		return winTotal;
	}

	public void setWinTotal(Double winTotal) {
		this.winTotal = winTotal;
	}

	public Double getWinMax() {
		return winMax;
	}

	public void setWinMax(Double winMax) {
		this.winMax = winMax;
	}

	public Long getWinTimes() {
		return winTimes;
	}

	public void setWinTimes(Long winTimes) {
		this.winTimes = winTimes;
	}

	public Double getRechargeTotal() {
		return rechargeTotal;
	}

	public void setRechargeTotal(Double rechargeTotal) {
		this.rechargeTotal = rechargeTotal;
	}

	public Double getRechargeMax() {
		return rechargeMax;
	}

	public void setRechargeMax(Double rechargeMax) {
		this.rechargeMax = rechargeMax;
	}

	public Long getRechargeTimes() {
		return rechargeTimes;
	}

	public void setRechargeTimes(Long rechargeTimes) {
		this.rechargeTimes = rechargeTimes;
	}

	public Double getWithdrawTotal() {
		return withdrawTotal;
	}

	public void setWithdrawTotal(Double withdrawTotal) {
		this.withdrawTotal = withdrawTotal;
	}

	public Double getWithdrawMax() {
		return withdrawMax;
	}

	public void setWithdrawMax(Double withdrawMax) {
		this.withdrawMax = withdrawMax;
	}

	public Long getWithdrawTimes() {
		return withdrawTimes;
	}

	public void setWithdrawTimes(Long withdrawTimes) {
		this.withdrawTimes = withdrawTimes;
	}

	public Double getTransferInTotal() {
		return transferInTotal;
	}

	public void setTransferInTotal(Double transferInTotal) {
		this.transferInTotal = transferInTotal;
	}

	public Double getTransferInMax() {
		return transferInMax;
	}

	public void setTransferInMax(Double transferInMax) {
		this.transferInMax = transferInMax;
	}

	public Long getTransferInTimes() {
		return transferInTimes;
	}

	public void setTransferInTimes(Long transferInTimes) {
		this.transferInTimes = transferInTimes;
	}

	public Double getTransferOutTotal() {
		return transferOutTotal;
	}

	public void setTransferOutTotal(Double transferOutTotal) {
		this.transferOutTotal = transferOutTotal;
	}

	public Double getTransferOutMax() {
		return transferOutMax;
	}

	public void setTransferOutMax(Double transferOutMax) {
		this.transferOutMax = transferOutMax;
	}

	public Long getTransferOutTimes() {
		return transferOutTimes;
	}

	public void setTransferOutTimes(Long transferOutTimes) {
		this.transferOutTimes = transferOutTimes;
	}

	public OnlineStatus getOnlineStatus() {
		return onlineStatus;
	}

	public void setOnlineStatus(OnlineStatus onlineStatus) {
		this.onlineStatus = onlineStatus;
	}

	public Boolean getAccountLocked() {
		return accountLocked;
	}

	public void setAccountLocked(Boolean accountLocked) {
		this.accountLocked = accountLocked;
	}

	public Boolean getLoginLocked() {
		return loginLocked;
	}

	public void setLoginLocked(Boolean loginLocked) {
		this.loginLocked = loginLocked;
	}

	public Boolean getBankCardLocked() {
		return bankCardLocked;
	}

	public void setBankCardLocked(Boolean bankCardLocked) {
		this.bankCardLocked = bankCardLocked;
	}

	public Boolean getLayerLocked() {
		return layerLocked;
	}

	public void setLayerLocked(Boolean layerLocked) {
		this.layerLocked = layerLocked;
	}

	public Date getLoginPasswordLastModifiedDate() {
		return loginPasswordLastModifiedDate;
	}

	public void setLoginPasswordLastModifiedDate(
			Date loginPasswordLastModifiedDate) {
		this.loginPasswordLastModifiedDate = loginPasswordLastModifiedDate;
	}

	public Date getFundsPasswordLastModifiedDate() {
		return fundsPasswordLastModifiedDate;
	}

	public void setFundsPasswordLastModifiedDate(
			Date fundsPasswordLastModifiedDate) {
		this.fundsPasswordLastModifiedDate = fundsPasswordLastModifiedDate;
	}

	public Date getLastLoginTime() {
		return lastLoginTime;
	}

	public void setLastLoginTime(Date lastLoginTime) {
		this.lastLoginTime = lastLoginTime;
	}

	public Date getLastWithdrawTime() {
		return lastWithdrawTime;
	}

	public void setLastWithdrawTime(Date lastWithdrawTime) {
		this.lastWithdrawTime = lastWithdrawTime;
	}

	public RegisterSource getRegisterSource() {
		return registerSource;
	}

	public void setRegisterSource(RegisterSource registerSource) {
		this.registerSource = registerSource;
	}

	public String getLastLoginAddress() {
		return lastLoginAddress;
	}

	public void setLastLoginAddress(String lastLoginAddress) {
		this.lastLoginAddress = lastLoginAddress;
	}

	public Integer getLoginFailureTimes() {
		return loginFailureTimes;
	}

	public void setLoginFailureTimes(Integer loginFailureTimes) {
		this.loginFailureTimes = loginFailureTimes;
	}

	public String getQuota() {
		return quota;
	}

	public void setQuota(String quota) {
		this.quota = quota;
	}

	public Date getCreatedDate() {
		return createdDate;
	}

	public void setCreatedDate(Date createdDate) {
		this.createdDate = createdDate;
	}

	public String getLastModifiedBy() {
		return lastModifiedBy;
	}

	public void setLastModifiedBy(String lastModifiedBy) {
		this.lastModifiedBy = lastModifiedBy;
	}

	public Date getLastModifiedDate() {
		return lastModifiedDate;
	}

	public void setLastModifiedDate(Date lastModifiedDate) {
		this.lastModifiedDate = lastModifiedDate;
	}

}
